import numpy as np
from PIL import Image
a = np.array(Image.open('cat.png'))
# 输出此图的高*宽*颜色,数据类型,某个点的颜色值
print(a.shape, a.dtype, a[100, 100])
# 输出互补色并存储为cat2
b = 255-a
Image.fromarray(b).save('cat2.png')
# 输出黑色横条并存储为cat3
c = a.copy()
c[:,:,2] = 0
Image.fromarray(c).save('cat3.png')
# 输出白色横条并存储为cat4
d = a.copy()
d[:,:,2] = 255
Image.fromarray(d).save('cat4.png')
#上下颠倒
Image.fromarray(a[::-1]).save('cat5.png')
#左右交换
Image.fromarray(a[:, ::-1]).save('cat6.png')
#水平组合
Image.fromarray(np.hstack((a,a))).save('cat7.png')
#垂直组合
Image.fromarray(np.vstack((a,a))).save('cat8.png')
# 上下组合
Image.fromarray(np.vstack((a,(a[::-1])))).save('cat9.png')
# 用tile平铺：
np.tile(a,(2,1))# 就是把a先沿x轴(即2轴)复制1倍
Image.fromarray(np.tile(a, (2, 2, 1))).save('cat10.png')
# 将图片转置并存储为cat11
e=a.transpose(1,0,2)
#交换第一维和第二维
Image.fromarray(e).save('cat11.png')